package main

import (
	"common-service/tools"
	"log"
)

/*
 +----------------------------------------------------------------------
 + Title        : topicConsumer
 + Author       : huwl
 + Version      : 2.0.0
 + Initial-Time : 2020-11-23
 + Last-time    : 这个文件最后修改的时间 + 修改人的名称
 + Desc         : 主题消费者
 +----------------------------------------------------------------------
*/

// 运行程序命令: go run .\consoles\rabbitMQConsumer\retryConsumer\main.go

/**
 * 重试消费者
 *
 * @param string queueName ----------------------------------必传,队列名称
 * @param string consumerName -------------------------------必传,消费者名称
 * @author huwl
 */
func RetryConsumer(queueName, consumerName string) {
	log.Println("------------- retry " + consumerName + " start -------------")
	// 创建RabbitMQ
	rm, err := tools.NewRabbitMQ()
	if err != nil {
		log.Fatalf("Failed to create RabbitMQ: %v", err)
	}

	// 创建队列，注意如果生产者端已经创建则无需再创建
	// 消费消息
	rm.ConsumeMessage(tools.ConsumerMessageParam{
		Queue:      queueName,    // 队列名称
		Consumer:   consumerName, // 消费者名称
		AutoAck:    false,        // false: 手动回复,true: 自动回复
		IsRetry:    true,         // 是否重试
		RetryCount: 3,            // 重试次数
	})
}
func main() {
	RetryConsumer("retry.queue", "RetryConsumer")
}
